package com.ingenio.siot.adapter;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.ingenio.siot.Adapter;
import com.ingenio.siot.entity.TipoCalle;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class TipoCalleAdapter extends Adapter{
	
	public List<TipoCalle> devolverTiposCalles() throws Exception{
		Connection conn = null;
		PreparedStatement stmt = null;
    	List<TipoCalle> tipoCalles = new ArrayList<TipoCalle>();
    	
		try {
    		conn = (Connection) abrirConexion();
    		String sel ="SELECT * FROM tiposcalles where activo=1";
    		stmt = (PreparedStatement) conn.prepareStatement(sel);
    		    		
    		ResultSet result = stmt.executeQuery();
    		TipoCalle tc = null;
    		while(result.next()){
    			Integer id = result.getInt("IdTipoCalle");
    			String descripcion = result.getString("descTipoCalle");
    			Double densidad = result.getDouble("densidadCalle");
    			String color = result.getString("colorGrafico");
    			tc = new TipoCalle(id, descripcion, densidad, color, true);
    			tipoCalles.add(tc);
    		}
    	}
    	catch (Exception e) {
			e.printStackTrace();
			throw new Exception("Error al conectar con la base de datos.", e);
		}
    	finally{
    		cerrarConexion(conn);
    	}
		return tipoCalles;
	}
	
	public TipoCalle devolverTipoCalle(Integer idTipoCalle) throws Exception{
		Connection conn = null;
		PreparedStatement stmt = null;
    	TipoCalle tc = null;
    	try {
    		conn = (Connection) abrirConexion();
    		String sel ="SELECT * FROM tiposcalles WHERE IdTipoCalle = ? and activo=1";
    		stmt = (PreparedStatement) conn.prepareStatement(sel);
    		stmt.setInt(1, idTipoCalle);
    		ResultSet result = stmt.executeQuery();
    		if(result.next()){
    			String descripcion = result.getString("descTipoCalle");
    			Double densidad = result.getDouble("densidadCalle");
    			String color = result.getString("colorGrafico");
    			tc = new TipoCalle(idTipoCalle, descripcion, densidad, color, true);
    		}
    	}
    	catch (Exception e) {
			e.printStackTrace();
			throw new Exception("Error al conectar con la base de datos.", e);
		}
    	finally{
    		cerrarConexion(conn);
    	}
		return tc;
	}

}
